#ifndef MYCHARTS_H
#define MYCHARTS_H

#include <QWidget>
#include <QObject>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QChart>
#include <QValueAxis>
#include <QLegend>
#include <QPointF>
#include <QPixmap>


QT_BEGIN_NAMESPACE

#if QT_VERSION_MAJOR == 5
using namespace QtCharts;
#endif


class MyCharts : public QWidget
{
    Q_OBJECT

public:
    typedef enum class _rotation {
        Vertical,
        Horizontal
    }ENUM_ORIENTATION;

public:
    explicit MyCharts(QWidget *parent = nullptr);

    // 设置窗口大小
    void resize(const int& w, const int& h);
    // 设置坐标轴范围
    void setAxisRange(const qreal& min, const qreal& max, const QString& formatString, const int& tickCount, const ENUM_ORIENTATION& orietation);
    // 设置坐标轴标签
    void setAxisLabel(const QColor& color, const QFont& font, const ENUM_ORIENTATION& orietation);
    // 设置坐标轴网格线
    void setAxisGridLine(const QPen& pen, const ENUM_ORIENTATION& orietation);
    // 设置坐标轴标题
    void setAxisTitleName(const QString& name, const QFont& font, const QColor& color, const ENUM_ORIENTATION& orietation);
    // 绘图
    void drawCurve(const QString& name,  QList<std::shared_ptr<QPointF>> data, const QPen& pen);
    // 设置图表标题
    void setChartTitle(const QString& name, const QFont& font, const QColor& color);
    //  保存为图片
    void saveToPicture(const QString& filePath);


signals:


private:
    QChartView m_chartView;
    QChart m_chart;
    QValueAxis m_axisX;
    QValueAxis m_axisY;
    QLegend* p_legend;
};




QT_END_NAMESPACE

#endif // MYCHARTS_H
